<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
  <head>
    <meta charset="utf-8" />
    <meta name="generator" content="pandoc" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1.0, user-scalable=yes"
    />
    <title>README</title>
    <style type="text/css">
      code {
        white-space: pre-wrap;
      }
      span.smallcaps {
        font-variant: small-caps;
      }
      span.underline {
        text-decoration: underline;
      }
      div.column {
        display: inline-block;
        vertical-align: top;
        width: 50%;
      }
    </style>
  </head>
  <body>
    <p>Lecture 1: <a href="Linked_Lists/1_linked_lists.md">Linked Lists</a></p>
    <p>
      Lecture 2:
      <a href="Doubly_Linked_List/2_doubly_linked_list.md"
        >Implementing a Doubly Linked List</a
      >
    </p>
    <p>Lecture 3: <a href="BST_and_Heaps/bst_heaps.md">BST and Heaps</a></p>
    <p>
      Lecture 4:
      <a href="Interview_Problems/Heaps_and_Interview.md"
        >Heaps &amp; Interview Practice</a
      >
    </p>
    <p>
      <a href="https://learn.lambdaschool.com/cs/sprint/recR4gHcvD21ziR9a"
        >Data Structures in TK</a
      >
    </p>
    <p>
      If you found these notes helpful and want to show appreciation to the
      author,
      <a href="https://www.buymeacoffee.com/G1stPBuYU">coffee donations</a> are
      much loved.
    </p>
    <h1 id="data-structures">Data Structures</h1>
    <p>
      Data Structures, like tools, have a best use case that they are each
      optimal for. We could hammer in a nail using a wrench or a screwdriver
      instead of a hammer – but the tool that <em>best</em> handles nails is a
      hammer.
    </p>
    <p>
      Learning about the strengths and pitfalls of each data structure will help
      us use them most appropriately when writing code.
    </p>
    <p>
      Just because something <em>can</em> get the job done, doesn’t mean it will
      do it efficiently. Choosing the best use type helps improve run time or
      space efficiency.
    </p>
    <p>
      Some types have more use cases than others, even if they are rarer in real
      life implementation (heaps v arrays and hash tables).
    </p>
    <p>
      In interviews, it’s common to be asked about more niche implementations of
      data structures or accurately choosing the most efficient data structure
      to solve an algorithm.
    </p>
    <h1 id="what-is-a-data-structure">What is a data structure?</h1>
    <p>An optimized way of storing data sets.</p>
    <p>
      Outside of programming, we use storage structures like cabinets and
      drawers. Some are more appropriate for certain types of items versus
      others. While a cabinet is great for plates or glasses, it might not be
      great for storing piles of papers.
    </p>
    <p>
      We also use data storage in lists like for grocery shopping or recipes, or
      a calendar for associating items with days of the week.
    </p>
    <p>
      In the same way, we need to know how data structures work to understand
      what the best implementation for solving problems is based on the
      anticipated data. Developers are problem solvers who often solves things
      that have not been done before or don’t have a simple online tutorial for.
    </p>
  </body>
</html>
